package ufc.quixada.es.estrutura;

import ufc.quixada.es.model.Logradouro;

public class ListaCircular {
	private NoCircular primeiro;
	private NoCircular ultimo;
	private int totalDeElementos;

	public void adicionaNoComeco(Logradouro logradouro) {
		NoCircular novo = new NoCircular(this.primeiro, logradouro);
		this.primeiro = novo;
		if (this.totalDeElementos == 0) {
			this.ultimo = this.primeiro;
		}
		this.totalDeElementos++;
	}

	public void adiciona(Logradouro logradouro) {
		if (this.totalDeElementos == 0) {
			this.adicionaNoComeco(logradouro);
		} else {
			NoCircular novo = new NoCircular(logradouro);
			this.ultimo.setProx(novo);
			this.ultimo = novo;
			this.totalDeElementos++;
		}	
	}

	private boolean posicaoOcupada(int posicao) {
		return posicao >= 0 && posicao < this.totalDeElementos;
	}

	private NoCircular busca(int posicao) {
		if (!posicaoOcupada(posicao)) {
			System.out.println("Erro!!!!");
		}
		NoCircular atual = primeiro;
		for (int i = 0; i < posicao; i++) {
			atual = atual.getProx();
		}
		return atual;
	}

	public Logradouro buscaLogradouro(int posicao) {
		System.out.println("tamanho"+totalDeElementos);
		return busca(posicao).getLogradouro();
	}
	public int getTotalDeElementos() {
		return totalDeElementos;
	}
}
